package aspects;

import java.util.HashMap;
import com.coa.data.interfaces.*;
import com.coa.cadastros.*;
import com.coa.educacao.*;


public aspect AspectoEstatistica {


	private static HashMap<String, Integer> map = new HashMap<String, Integer>();
	
	
	//aumnenta o numero de alunos cadastrados
	after(Object c) returning(): this(c) && call(void IRepositorio*.inserir( * ))  && within(Cadastro*){
		
		String key = c.getClass().getSimpleName();
		
		if(map.containsKey(key))
		{
			map.put(key, map.get(key) +1);
		}else{
			map.put(key,1);
		}
	}
	
	after(Object c) returning():this(c) &&  call(void IRepositorio*.remove( * ))  && within(Cadastro*){
		

		String key = c.getClass().getSimpleName();
		
		if(map.containsKey(key))
		{
			map.put(key, map.get(key) -1);
		}
	}
	
	
	
	
	
	
	
	
	
	public static int getNAlunosCadastrados()
	{
		return map.get("CadastroAlunos");
	}
	
	public static int getNProfessoresCadastrados()
	{
		return map.get("CadastroProfessores");
	}
	
	
	
	
	
	
	
	
	
}
